package data;

import java.util.HashMap;

/**
 * represente une HashMap de l'ensemble des types de transports
 * dont la clé est le nom du type de transport et la valeur le type de transport.
 * une voyageur.
 * @author Alexandre Boursier and Mamadou Diallo and Cyril Gorrieri and Emmanuel
 *         Menage
 */

public class TypeTransportHelper {
    
    private static HashMap<String, TypeTransport> validTypes;

    /**
     * Crée une table associative contenant tous les types de transports possibles.
     */
    static {
        validTypes = new HashMap<String, TypeTransport>();
        for (TypeTransport tpT : TypeTransport.values()) {
            if (tpT != TypeTransport.UNKNOWN) {
                validTypes.put(tpT.toString(), tpT);
            }
        }
    }

    /**
     * récupère un type de transport selon son nom
     * @param type
     * 			  le nom du type de transport
     * @return le type de transport dont le nom est passé en paramètre.
     */
    public static TypeTransport getTypeTransport(String type) {
        TypeTransport command = validTypes.get(type);
        if (command != null) {
            return command;
        } else {
            return TypeTransport.UNKNOWN;
        }
    }

   /**
    * Vérifie l'existence d'un type de transport dans la table associative
    * @param aString
    * 		 la clé(le nom du type de transport)
    * @return true si le type  recherché est dans la table, false sinon
    */
    public static boolean isTypeTransport(String aString) {
        return validTypes.containsKey(aString);
    }

    /**
     * Affiche  le nom de tous les types de transports disponibles
     */
    public static void showAll() {
        for (String command : validTypes.keySet()) {
            System.out.print(command + "  ");
        }
        System.out.println();
    }
}
